package com.bookshare.dao.entity;

import java.util.ArrayList;
import java.util.List;

public class BookExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BookExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andBookIsbnIsNull() {
            addCriterion("book_ISBN is null");
            return (Criteria) this;
        }

        public Criteria andBookIsbnIsNotNull() {
            addCriterion("book_ISBN is not null");
            return (Criteria) this;
        }

        public Criteria andBookIsbnEqualTo(String value) {
            addCriterion("book_ISBN =", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnNotEqualTo(String value) {
            addCriterion("book_ISBN <>", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnGreaterThan(String value) {
            addCriterion("book_ISBN >", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnGreaterThanOrEqualTo(String value) {
            addCriterion("book_ISBN >=", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnLessThan(String value) {
            addCriterion("book_ISBN <", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnLessThanOrEqualTo(String value) {
            addCriterion("book_ISBN <=", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnLike(String value) {
            addCriterion("book_ISBN like", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnNotLike(String value) {
            addCriterion("book_ISBN not like", value, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnIn(List<String> values) {
            addCriterion("book_ISBN in", values, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnNotIn(List<String> values) {
            addCriterion("book_ISBN not in", values, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnBetween(String value1, String value2) {
            addCriterion("book_ISBN between", value1, value2, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookIsbnNotBetween(String value1, String value2) {
            addCriterion("book_ISBN not between", value1, value2, "bookIsbn");
            return (Criteria) this;
        }

        public Criteria andBookSnIsNull() {
            addCriterion("book_sn is null");
            return (Criteria) this;
        }

        public Criteria andBookSnIsNotNull() {
            addCriterion("book_sn is not null");
            return (Criteria) this;
        }

        public Criteria andBookSnEqualTo(Integer value) {
            addCriterion("book_sn =", value, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnNotEqualTo(Integer value) {
            addCriterion("book_sn <>", value, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnGreaterThan(Integer value) {
            addCriterion("book_sn >", value, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnGreaterThanOrEqualTo(Integer value) {
            addCriterion("book_sn >=", value, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnLessThan(Integer value) {
            addCriterion("book_sn <", value, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnLessThanOrEqualTo(Integer value) {
            addCriterion("book_sn <=", value, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnIn(List<Integer> values) {
            addCriterion("book_sn in", values, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnNotIn(List<Integer> values) {
            addCriterion("book_sn not in", values, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnBetween(Integer value1, Integer value2) {
            addCriterion("book_sn between", value1, value2, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookSnNotBetween(Integer value1, Integer value2) {
            addCriterion("book_sn not between", value1, value2, "bookSn");
            return (Criteria) this;
        }

        public Criteria andBookNameIsNull() {
            addCriterion("book_name is null");
            return (Criteria) this;
        }

        public Criteria andBookNameIsNotNull() {
            addCriterion("book_name is not null");
            return (Criteria) this;
        }

        public Criteria andBookNameEqualTo(String value) {
            addCriterion("book_name =", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameNotEqualTo(String value) {
            addCriterion("book_name <>", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameGreaterThan(String value) {
            addCriterion("book_name >", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameGreaterThanOrEqualTo(String value) {
            addCriterion("book_name >=", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameLessThan(String value) {
            addCriterion("book_name <", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameLessThanOrEqualTo(String value) {
            addCriterion("book_name <=", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameLike(String value) {
            addCriterion("book_name like", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameNotLike(String value) {
            addCriterion("book_name not like", value, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameIn(List<String> values) {
            addCriterion("book_name in", values, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameNotIn(List<String> values) {
            addCriterion("book_name not in", values, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameBetween(String value1, String value2) {
            addCriterion("book_name between", value1, value2, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookNameNotBetween(String value1, String value2) {
            addCriterion("book_name not between", value1, value2, "bookName");
            return (Criteria) this;
        }

        public Criteria andBookAuthorIsNull() {
            addCriterion("book_author is null");
            return (Criteria) this;
        }

        public Criteria andBookAuthorIsNotNull() {
            addCriterion("book_author is not null");
            return (Criteria) this;
        }

        public Criteria andBookAuthorEqualTo(String value) {
            addCriterion("book_author =", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorNotEqualTo(String value) {
            addCriterion("book_author <>", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorGreaterThan(String value) {
            addCriterion("book_author >", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorGreaterThanOrEqualTo(String value) {
            addCriterion("book_author >=", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorLessThan(String value) {
            addCriterion("book_author <", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorLessThanOrEqualTo(String value) {
            addCriterion("book_author <=", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorLike(String value) {
            addCriterion("book_author like", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorNotLike(String value) {
            addCriterion("book_author not like", value, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorIn(List<String> values) {
            addCriterion("book_author in", values, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorNotIn(List<String> values) {
            addCriterion("book_author not in", values, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorBetween(String value1, String value2) {
            addCriterion("book_author between", value1, value2, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookAuthorNotBetween(String value1, String value2) {
            addCriterion("book_author not between", value1, value2, "bookAuthor");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorIsNull() {
            addCriterion("book_translator is null");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorIsNotNull() {
            addCriterion("book_translator is not null");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorEqualTo(String value) {
            addCriterion("book_translator =", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorNotEqualTo(String value) {
            addCriterion("book_translator <>", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorGreaterThan(String value) {
            addCriterion("book_translator >", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorGreaterThanOrEqualTo(String value) {
            addCriterion("book_translator >=", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorLessThan(String value) {
            addCriterion("book_translator <", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorLessThanOrEqualTo(String value) {
            addCriterion("book_translator <=", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorLike(String value) {
            addCriterion("book_translator like", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorNotLike(String value) {
            addCriterion("book_translator not like", value, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorIn(List<String> values) {
            addCriterion("book_translator in", values, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorNotIn(List<String> values) {
            addCriterion("book_translator not in", values, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorBetween(String value1, String value2) {
            addCriterion("book_translator between", value1, value2, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookTranslatorNotBetween(String value1, String value2) {
            addCriterion("book_translator not between", value1, value2, "bookTranslator");
            return (Criteria) this;
        }

        public Criteria andBookLanguageIsNull() {
            addCriterion("book_language is null");
            return (Criteria) this;
        }

        public Criteria andBookLanguageIsNotNull() {
            addCriterion("book_language is not null");
            return (Criteria) this;
        }

        public Criteria andBookLanguageEqualTo(String value) {
            addCriterion("book_language =", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageNotEqualTo(String value) {
            addCriterion("book_language <>", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageGreaterThan(String value) {
            addCriterion("book_language >", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageGreaterThanOrEqualTo(String value) {
            addCriterion("book_language >=", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageLessThan(String value) {
            addCriterion("book_language <", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageLessThanOrEqualTo(String value) {
            addCriterion("book_language <=", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageLike(String value) {
            addCriterion("book_language like", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageNotLike(String value) {
            addCriterion("book_language not like", value, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageIn(List<String> values) {
            addCriterion("book_language in", values, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageNotIn(List<String> values) {
            addCriterion("book_language not in", values, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageBetween(String value1, String value2) {
            addCriterion("book_language between", value1, value2, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookLanguageNotBetween(String value1, String value2) {
            addCriterion("book_language not between", value1, value2, "bookLanguage");
            return (Criteria) this;
        }

        public Criteria andBookPublisherIsNull() {
            addCriterion("book_publisher is null");
            return (Criteria) this;
        }

        public Criteria andBookPublisherIsNotNull() {
            addCriterion("book_publisher is not null");
            return (Criteria) this;
        }

        public Criteria andBookPublisherEqualTo(String value) {
            addCriterion("book_publisher =", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherNotEqualTo(String value) {
            addCriterion("book_publisher <>", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherGreaterThan(String value) {
            addCriterion("book_publisher >", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherGreaterThanOrEqualTo(String value) {
            addCriterion("book_publisher >=", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherLessThan(String value) {
            addCriterion("book_publisher <", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherLessThanOrEqualTo(String value) {
            addCriterion("book_publisher <=", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherLike(String value) {
            addCriterion("book_publisher like", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherNotLike(String value) {
            addCriterion("book_publisher not like", value, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherIn(List<String> values) {
            addCriterion("book_publisher in", values, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherNotIn(List<String> values) {
            addCriterion("book_publisher not in", values, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherBetween(String value1, String value2) {
            addCriterion("book_publisher between", value1, value2, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookPublisherNotBetween(String value1, String value2) {
            addCriterion("book_publisher not between", value1, value2, "bookPublisher");
            return (Criteria) this;
        }

        public Criteria andBookClassificationIsNull() {
            addCriterion("book_classification is null");
            return (Criteria) this;
        }

        public Criteria andBookClassificationIsNotNull() {
            addCriterion("book_classification is not null");
            return (Criteria) this;
        }

        public Criteria andBookClassificationEqualTo(String value) {
            addCriterion("book_classification =", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationNotEqualTo(String value) {
            addCriterion("book_classification <>", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationGreaterThan(String value) {
            addCriterion("book_classification >", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationGreaterThanOrEqualTo(String value) {
            addCriterion("book_classification >=", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationLessThan(String value) {
            addCriterion("book_classification <", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationLessThanOrEqualTo(String value) {
            addCriterion("book_classification <=", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationLike(String value) {
            addCriterion("book_classification like", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationNotLike(String value) {
            addCriterion("book_classification not like", value, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationIn(List<String> values) {
            addCriterion("book_classification in", values, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationNotIn(List<String> values) {
            addCriterion("book_classification not in", values, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationBetween(String value1, String value2) {
            addCriterion("book_classification between", value1, value2, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookClassificationNotBetween(String value1, String value2) {
            addCriterion("book_classification not between", value1, value2, "bookClassification");
            return (Criteria) this;
        }

        public Criteria andBookImageIsNull() {
            addCriterion("book_image is null");
            return (Criteria) this;
        }

        public Criteria andBookImageIsNotNull() {
            addCriterion("book_image is not null");
            return (Criteria) this;
        }

        public Criteria andBookImageEqualTo(String value) {
            addCriterion("book_image =", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageNotEqualTo(String value) {
            addCriterion("book_image <>", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageGreaterThan(String value) {
            addCriterion("book_image >", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageGreaterThanOrEqualTo(String value) {
            addCriterion("book_image >=", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageLessThan(String value) {
            addCriterion("book_image <", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageLessThanOrEqualTo(String value) {
            addCriterion("book_image <=", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageLike(String value) {
            addCriterion("book_image like", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageNotLike(String value) {
            addCriterion("book_image not like", value, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageIn(List<String> values) {
            addCriterion("book_image in", values, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageNotIn(List<String> values) {
            addCriterion("book_image not in", values, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageBetween(String value1, String value2) {
            addCriterion("book_image between", value1, value2, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookImageNotBetween(String value1, String value2) {
            addCriterion("book_image not between", value1, value2, "bookImage");
            return (Criteria) this;
        }

        public Criteria andBookUrlIsNull() {
            addCriterion("book_url is null");
            return (Criteria) this;
        }

        public Criteria andBookUrlIsNotNull() {
            addCriterion("book_url is not null");
            return (Criteria) this;
        }

        public Criteria andBookUrlEqualTo(String value) {
            addCriterion("book_url =", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlNotEqualTo(String value) {
            addCriterion("book_url <>", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlGreaterThan(String value) {
            addCriterion("book_url >", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlGreaterThanOrEqualTo(String value) {
            addCriterion("book_url >=", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlLessThan(String value) {
            addCriterion("book_url <", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlLessThanOrEqualTo(String value) {
            addCriterion("book_url <=", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlLike(String value) {
            addCriterion("book_url like", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlNotLike(String value) {
            addCriterion("book_url not like", value, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlIn(List<String> values) {
            addCriterion("book_url in", values, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlNotIn(List<String> values) {
            addCriterion("book_url not in", values, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlBetween(String value1, String value2) {
            addCriterion("book_url between", value1, value2, "bookUrl");
            return (Criteria) this;
        }

        public Criteria andBookUrlNotBetween(String value1, String value2) {
            addCriterion("book_url not between", value1, value2, "bookUrl");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}